草庐IT

Android Explicit Intent 抛出 NoClassDefFounderror

全部标签

c++ - 在 Cygwin 上执行的程序不报告抛出的异常

当我运行如下所示的简单程序时,我在Cygwin和Ubuntu操作系统上得到了不同的终端输出。#include#include#includeusingnamespacestd;doublesquare_root(doublex){if(x在Cygwin上,与Ubuntu不同,我没有收到任何表明抛出异常的消息。这可能是什么原因?是否需要为Cygwin下载一些东西,以便它按预期处理异常?我在GCC4.9.0中使用Cygwin1.7.30版。在Ubuntu上,我有版本13.10和GCC4.8.1。我怀疑在这种情况下编译器的差异是否重要。 最佳答案

c++ - 按值或引用抛出异常

来自这个答案https://stackoverflow.com/a/36738405/4523099:Athrow-expressionwithnooperandrethrowsthecurrentlyhandledexception.Theexceptionisreactivatedwiththeexistingtemporary;nonewtemporaryexceptionobjectiscreated.--ISO/IEC14882:2011Section15.1par.8那么为什么我会从这段代码中得到这个结果?代码:#includeclassmy_exception:publi

c++ - 如何处理抛出异常的文件析构函数?

关闭正在写入的文件时检测错误很重要,因为数据的最后一部分可能会在关闭期间被刷新,如果它丢失,那么您最后一次写入实际上失败了,应该有人知道这件事.文件对象的析构函数是自动关闭它的好地方,但人们说不要从析构函数中抛出异常,所以如果关闭失败那么你怎么知道呢?我听说有人建议手动调用文件的close()方法。这听起来不错,除了如果多个文件的close()方法在这种情况下全部失败会发生什么:MyFilex(0),y(1),z(2);x.close();y.close();z.close();?好吧,如果“x”的close()方法抛出异常,那么您已经很好地维护了避免在“x”的析构函数中抛出异常的规则

c++ - 如果在构造函数中抛出异常,为对象分配的内存是否会自动删除?

假设有这段代码:classCFoo{public:CFoo(){iBar=newCBar();}private:CBar*iBar;};....CFoo*foo=newCFoo();当上面的行被执行时,首先分配内存来保存CFoo对象。但是如果newCBar()行抛出异常(由于内存不足),系统会自动释放之前分配给CFoo对象的内存吗?我认为它必须,但找不到任何明确的引用资料。如果没有,编码器如何释放内存,因为它不会分配给foo? 最佳答案 是的,分配给CFoo对象的内存在这种情况下将被释放。由于分配失败导致的异常导致CFoo构造函数无

c++ - std::stod 为应该有效的字符串抛出 out_of_range 错误

#include#include#includeusingnamespacestd;intmain(){stringstreamss;doublead=7.63918e-313;ss在这里运行:https://onlinegdb.com/Sy1MT1iQM“7.63918e-313”将由序列化一个double值产生,但stod不能反序列化它。这里发生了什么?最小的双倍数应该是10^−324左右。stdlib中是否有一对函数可以可靠地从字符串化来回映射double?不应该有吗?情节变厚了。我们有两个奇怪的观察结果。std::numeric_limits::min()stod也无法解析。s

c++ - 不知道使用 google-test 在哪里抛出异常

我们使用GoogleTest作为我们的C++单元测试框架。但是我遇到了一个痛苦的情况,不知道如何处理。基本上,当代码中存在未捕获的异常时,我会在控制台中打印以下错误消息并得到一个FAILED。很明显,这个异常是被googletest捕获的。但是,我根本不知道异常在哪里抛出。unknownfile:error:SEHexceptionwithcode0xc000005throwninthetestbody.我能做的就是调试和单步调试代码,我最终会找出问题所在。但这不是很有效,因为项目很大。我希望调试器在未捕获的异常行处停止,并给我一个漂亮的调用堆栈。谷歌测试中有什么我不知道的设置吗?任何

c++ - 关于 C++ 中 sizeof(class) 用法抛出的错误

当我用C++编译我的项目时,MSVC抛出以下错误:error#94:thesizeofanarraymustbegreaterthanzero执行sizeof时在以下行中抛出错误:if(sizeof(MyNamespace::MyClass)==60)MyClass是这样定义的:classMyClass:publicParentClass{public:MyClass(void*pCreate,inta,intb,boolc):ParentClass(pCreate,a,b,c){}virtualinlinevoidmyFunc(){//something}private:virtua

c++ - std::tr1::shared_ptr 是否会抛出 bad_alloc 并且在 try/catch block 中是个好主意?

我实际上正在制作一个简单的C++SFML游戏,我想学习更多关于C++编程的知识。现在我正在使用shared_ptr来管理资源。创建新资源时,我对shared_ptrs有一些疑问,例如:shared_ptrresource(newResource(World::LEVEL));根据boostshared_ptr(Y*p)throwsbad_alloc。我不知道std::tr1是否也这样做。而且我不知道我是否应该担心将shared_ptr放入try/catchblock中以检查是否抛出bad_alloc。这是一个好的编程习惯吗? 最佳答案

c++ - vector 迭代循环抛出错误?

for(std::vector::iteratorit=v.begin();it!=v.end();++it)error:conversionfrom'std::vector::const_iterator{aka__gnu_cxx::__normal_iterator>}'tonon-scalartype'std::vector::iterator{aka__gnu_cxx::__normal_iterator>}'requested这是怎么回事? 最佳答案 您处于v为const的上下文中。请改用const_iterator。fo

c++ - 如何捕获临界区抛出的异常?

我正在使用C++开发win32多线程。设想:我有一个由多个线程使用的函数。此函数用作关键部分(或任何可以锁定资源的构造)。在临界区抛出异常。此时我需要注意解锁异常捕获block中的资源。有没有其他方法可以做到这一点?我的意思是,假设我不想记住释放catchblock中的锁,是否有任何通用方法来处理此问题以避免这种容易出错的情况? 最佳答案 这个想法是将获取和释放临界区的行为封装在一个对象中,这样构造对象就获取CS,销毁对象就释放它。structCSHolder{explicitCSHolder(CRITICAL_SECTION&cs